package tools

import javax.crypto.spec.SecretKeySpec

class SecretKeySpecFactory {
    companion object {
        fun getSecretKeySpace(version: Int): SecretKeySpec {
            var key = byteArrayOf(19, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, -76, 0, 0, 0, 27, 0, 0, 0, 15, 0, 0, 0, 51, 0, 0, 0, 82, 0, 0, 0)
            when (version) {
                0 -> {
                    key = byteArrayOf(41, 0, 0, 0, -31, 0, 0, 0, 82, 0, 0, 0, -15, 0, 0, 0, -77, 0, 0, 0, -121, 0, 0, 0, 36, 0, 0, 0, 6, 0, 0, 0)
                }
                1 -> {
                    key = byteArrayOf(-77, 0, 0, 0, 67, 0, 0, 0, 31, 0, 0, 0, 9, 0, 0, 0, 93, 0, 0, 0, -106, 0, 0, 0, 19, 0, 0, 0, 28, 0, 0, 0)
                }
                2 -> {
                    key = byteArrayOf(-120, 0, 0, 0, 107, 0, 0, 0, -7, 0, 0, 0, 113, 0, 0, 0, 13, 0, 0, 0, -122, 0, 0, 0, -37, 0, 0, 0, 79, 0, 0, 0)
                }
                3 -> {
                    key = byteArrayOf(32, 0, 0, 0, 64, 0, 0, 0, 18, 0, 0, 0, -98, 0, 0, 0, -83, 0, 0, 0, 68, 0, 0, 0, 107, 0, 0, 0, 50, 0, 0, 0)
                }
                4 -> {
                    key = byteArrayOf(-10, 0, 0, 0, -31, 0, 0, 0, -80, 0, 0, 0, -71, 0, 0, 0, 44, 0, 0, 0, -103, 0, 0, 0, -78, 0, 0, 0, 83, 0, 0, 0)
                }
                5 -> {
                    key = byteArrayOf(-65, 0, 0, 0, 45, 0, 0, 0, -125, 0, 0, 0, 97, 0, 0, 0, 97, 0, 0, 0, -99, 0, 0, 0, 114, 0, 0, 0, -124, 0, 0, 0)
                }
                6 -> {
                    key = byteArrayOf(2, 0, 0, 0, 44, 0, 0, 0, 18, 0, 0, 0, -98, 0, 0, 0, -44, 0, 0, 0, 89, 0, 0, 0, 50, 0, 0, 0, -49, 0, 0, 0)
                }
                7 -> {
                    key = byteArrayOf(72, 0, 0, 0, -26, 0, 0, 0, -27, 0, 0, 0, 120, 0, 0, 0, 14, 0, 0, 0, -44, 0, 0, 0, 123, 0, 0, 0, 59, 0, 0, 0)
                }
                8 -> {
                    key = byteArrayOf(24, 0, 0, 0, 100, 0, 0, 0, -123, 0, 0, 0, -8, 0, 0, 0, -106, 0, 0, 0, 22, 0, 0, 0, -44, 0, 0, 0, -48, 0, 0, 0)
                }
                9 -> {
                    key = byteArrayOf(91, 0, 0, 0, -113, 0, 0, 0, -27, 0, 0, 0, 50, 0, 0, 0, -124, 0, 0, 0, -89, 0, 0, 0, -18, 0, 0, 0, 47, 0, 0, 0)
                }
                10 -> {
                    key = byteArrayOf(118, 0, 0, 0, -55, 0, 0, 0, 73, 0, 0, 0, 8, 0, 0, 0, -79, 0, 0, 0, 17, 0, 0, 0, -42, 0, 0, 0, -105, 0, 0, 0)
                }
                11 -> {
                    key = byteArrayOf(16, 0, 0, 0, -127, 0, 0, 0, -118, 0, 0, 0, 71, 0, 0, 0, 49, 0, 0, 0, -98, 0, 0, 0, -116, 0, 0, 0, -102, 0, 0, 0)
                }
                12 -> {
                    key = byteArrayOf(94, 0, 0, 0, -100, 0, 0, 0, -97, 0, 0, 0, 12, 0, 0, 0, 101, 0, 0, 0, -119, 0, 0, 0, 122, 0, 0, 0, 99, 0, 0, 0)
                }
                13 -> {
                    key = byteArrayOf(-38, 0, 0, 0, 98, 0, 0, 0, 52, 0, 0, 0, 63, 0, 0, 0, 109, 0, 0, 0, 40, 0, 0, 0, 29, 0, 0, 0, 63, 0, 0, 0)
                }
                14 -> {
                    key = byteArrayOf(15, 0, 0, 0, 27, 0, 0, 0, -59, 0, 0, 0, 70, 0, 0, 0, -13, 0, 0, 0, -66, 0, 0, 0, -1, 0, 0, 0, 117, 0, 0, 0)
                }
                15 -> {
                    key = byteArrayOf(-121, 0, 0, 0, -48, 0, 0, 0, -37, 0, 0, 0, 43, 0, 0, 0, 127, 0, 0, 0, 84, 0, 0, 0, -86, 0, 0, 0, 11, 0, 0, 0)
                }
                16 -> {
                    key = byteArrayOf(-54, 0, 0, 0, -119, 0, 0, 0, -3, 0, 0, 0, -10, 0, 0, 0, -103, 0, 0, 0, -16, 0, 0, 0, -90, 0, 0, 0, 11, 0, 0, 0)
                }
                17 -> {
                    key = byteArrayOf(94, 0, 0, 0, 76, 0, 0, 0, -76, 0, 0, 0, -83, 0, 0, 0, -54, 0, 0, 0, -99, 0, 0, 0, 121, 0, 0, 0, 124, 0, 0, 0)
                }
                18 -> {
                    key = byteArrayOf(-51, 0, 0, 0, 35, 0, 0, 0, -121, 0, 0, 0, 90, 0, 0, 0, -103, 0, 0, 0, 96, 0, 0, 0, -83, 0, 0, 0, 103, 0, 0, 0)
                }
                19 -> {
                    key = byteArrayOf(-97, 0, 0, 0, 21, 0, 0, 0, -2, 0, 0, 0, 4, 0, 0, 0, -113, 0, 0, 0, 67, 0, 0, 0, -54, 0, 0, 0, -45, 0, 0, 0)
                }
            }
            return SecretKeySpec(key, "AES")
        }
    }
}